SETUPSEG    equ 0x9020

    cli     ; 保护模式下中断机制尚未建立，应禁止中断

start:    
    mov ax, SETUPSEG
    mov ds, ax
    lgdt    [gdt_48]    ; 初始化GDT描述符，加载gdtr

    mov al, 2
    out 0x92, al        ; 打开A20地址线

    mov ax, 0x0001
    lmsw    ax          ; 设置cr0寄存器的PE位为1
    jmp $

gdt:
    dw  0, 0, 0, 0      ; dummy
    dw  0, 0, 0, 0      ; unused
    dw  0x07ff, 0x0000, 0x9a00, 0x00c0
    dw  0x07ff, 0x0000, 0x9200, 0x00c0

gdt_48:
    dw  0x800
    dw  512 + gdt, 0x9